login:        password:      
Combats Scrolls
Rambler's Top100
Гость БК
Profile Friend page
ru
updated 06.03.09 23:08
18-12-07 @ 14:37

Alex Nomad Open user info Open user photogallery
О безопасности в БК
В начале августа 2007 года был примечательный топик Мусорщика Все, что нажито… о мерах по противодействию взломов персонажей. Топик был создан Мусорщиком, но в комментариях в основным принимал участие небезысвестный ангел Security. К сожалению Security давно уже нет вБК...

В комментариях к этой записи я дал несколько своих предложений об увеличении безопасности в БК, даже разгорелась небольшая дискуссия с Security (см. удаленные комментарии). Чтобы мои предложения не оказались похороненными в груде комментариев решил их выложить еще раз, в слегка переработанном виде:

-------------------

Нельзя обеспечить полной безопасности - против каждого аргумента найдется свой антиаргумент. Единственное, что можно сделать - это затруднить выполнение разрушающих действий.

Вот мои мысли на этот счет:
1. Предоставить возможность включать контроль по IP, т.е. предоставить возможность задавать список IP, с которых я могу выполнять все операции. В этом случае, заход с другого IP должен затруднить или запретить следующие действия:
- передача, продажа и выкидывание вещей
- растрата более 10% от суммы, но не менее 100 кр.
- смена настроек, в том числе и пароля.
Выполнение этого предложения позволит мне играть с других IP, например, когда я пришел к друзьям. Но несколько затруднит работу мошеннику.


2. Ввод логина отличного от имени персонажа считаю положительным моментом, но не спасающим от перехвата трафика.


3. Переход на защищенные виды авторизации. Сейчас фактически логин и пароль передаются открытым текстом, а значит легко перехватываются. Использование HTTPS при авторизации является наиболее лучшим средством от перехватов. При этом сама игра может проходить по HTTP. Достаточно поставить еще один небольшой сервак, к которому будет обращаться один из скрытых фреймов по HTTPS и в случае необходимости будет производится блокировка сессии.

Одновремнно с этим можно при долгом отсутствии действий клиента (н-р 15 минут) попросить его ввести своий логин и пароль повторно для подтверждения что он продолжает контролировать персонажа.


4. Предлагаю опциональное использование аппаратных средств защиты, например, USB-брелки. Использовать их можно при высокой стоимости персонажа, например, артника. Стоят они в районе $20. Можно придумать механизм их рассылки через диллеров или автоматическая генерация через сайт - это уже детали.


5. Перейти на динамически генерируемые куки. Сейчас куки статические, т.е. они постоянны в течение всей сессии, а значит при перехвате злоумышленник может попытаться повторить сессию.
Идея заключается в том, что куки менялись динамически по известным на стороне клиента параметрам.
Пример:
Сейчас в куках хранится условный номер сессии (battlepsw) ввиде числа.
Предположим правилами установлено, что куки должны меняться каждые 5 минут.
На стороне клиента стоит фрэйм, который обновляется каждые 5 минут. При обновлении он передает номер текущего battlepsw и предыдущего(-щих) battlepsw. Если они правильные - генерится новый номер battlepsw.
Если они неправильные - происходит выход из игры.
Соответственно злоумышленнику необходимо перехватить не только текущий battlepsw, который хранится в куках в данный момент, но и предыдущий (предыдущие) battlepsw, которые после смены предлагается хранить в переменных JS Internet Explorer'a (ни в коем случае не в куках!). А это потребует кропотливого мониторинга за жертвой, что не всегда доступно. Увеличение трафика будет составит 100-500 байт каждый 5 минут - смешная цифра.

Одновременно с этим решается проблема с открытием основного окна БК в подокне, например из инфы.
Поскольку подокно не знает о номере предыдущей сессии, то попытка открыть основное окно в нем убьет сессию и игрок вылетит из БК.


6. Сделать возможность врменно привязывать вещи к себе. Т.е. примерно такая же привязка, как она есть сейчас, только чтобы игроки сами могли ее ставить и снимать.
Для снятия привязки нужен будет некоторый код, например вида md5, который для каждого персонажа должен быть своим.

-------------------

Я могу предположить, что чаще всего перехваты происходят следующими способами

а) использование оставленного подокна БК (н-р, инфа), где легко восстановить основное окно игры;
б) перехват куки при отключенном контроле за IP (хотя непонятно как это происходит, ведь номер сессии надо еще знать).
в) перехват трафика, где видны логин и пароль (при не установленном втором пароле).

предложения 3) и 5) позволяют значительно (!) снизить риск этих видов перехватов, а именно:

а) подокном не воспользуешься, т.к. не известен предыдущий (предыдущие) номера battlepsw. Их не возьмешь из куков. До них можно добаться только через работу JS (например через ввод jаvаscript:... в адресной строке или внедрением вредоносного кода в игру, что очень затруднительно), либо через мониторинг трафика в течение продолжительного времени. Я не зря старался везде писать в скобках про предыдущие battlepsw. Вполне возможно организовать их хранение в массиве JS и по особому алгоритму их использовать для генерации новых. Это очень сильно затруднит (но не исключит совсем) перехвать контроля.

б) Аналогично п.1), т.к. теперь одних куков не хватит

в) а вот для этого я как раз и предлагал сделать пересылку первого пароля не в открытом виде.
Сейчас этот способ перехвата мне представляется самым простым. Поставил трассировку трафика на доступ к http://angelscity.combats.ru/enter.pl в каком-нибудь интернет-клубе. После чего, собрал все пароли, проверил у кого нет второго пароля, вот собственно и все...

Я думаю, что это: Scrolls.multiLike:)

view mode: linear threads
Total disscussion threads: 2 Pages: 1
«« « 1 » »»

Post reply | Post reply with quote
sh Open user info Open user photogallery
18-12-07 @ 15:29
copy link to clipboard
Все намного проще. Вернуть SSL.combats.ru
Post reply Ответить с цитированием
Alex Nomad Open user info Open user photogallery
18-12-07 @ 17:22
Re:
copy link to clipboard
Перевести всю игру на него будет не продуктивно, что приведет к потере производительности...
Достаточно перевести на HTTPS только один фрейм или только код, который обрабатывает авторизацию и проверку сессии.
Post reply Ответить с цитированием
Yan Kos Open user info Open user photogallery
18-12-07 @ 17:34
Re:
copy link to clipboard
+1, это конечно нагрузка на сервера но тогда сломать можно ток узнав пассы
Post reply Ответить с цитированием
Alex Nomad Open user info Open user photogallery
18-12-07 @ 18:52
Re: Re:
copy link to clipboard
и при этом - не надо переписывать массу скриптов, 98% кода остается без изменений. А это не маловажно!
Post reply Ответить с цитированием
Yan Kos Open user info Open user photogallery
18-12-07 @ 18:58
Re: Re: Re:
copy link to clipboard
да ложыли даймонд на это... им безопасность персах нах нужна, потерял ты своего, буш нового качать снова баблишко потечет в игру
Post reply Ответить с цитированием
Lion of Wood Open user info Open user photogallery
18-12-07 @ 19:58
copy link to clipboard

> им безопасность персах нах нужна, потерял ты своего, буш
> нового качать снова баблишко потечет в игру

согласен
если спокойно обдумать, даже поверхностно, основные изменения в БК за некоторое время, то картина представится совершенно безрадостная - акцент на выкачивание денег
Post reply Ответить с цитированием
Alex Nomad Open user info Open user photogallery
18-12-07 @ 21:57
Re:
copy link to clipboard
Не соглашусь:
Если это одиночный взлом - то как правило виноват сам владелец
Если взломы принимают массовый характер, то ни кто никакие екры вкладывать не будет.

П.С. По моим наблюдениям в БК одна из лучших систем безопасности среди броузерных игр.
Post reply Ответить с цитированием

Post reply | Post reply with quote

Total disscussion threads: 2 Pages: 1
«« « 1 » »»


 
 © 2007–2025 «combats.com»
  18+  
feedback